# 常见的状态简写
A = added = 已添加到暂存区
U = untracked = 未追踪（没有添加到版本控制）
M = modified = 修改了（但未提交）

# Git基础配置
git config --global user.name "Your Name"
git config --global user.email "yourname@example.com"

# 查看基础配置
git config --global user.name
git config --global user.email

# 克隆远程仓库为本地仓库
git clone https://gitee.com/steveouyang/test-repo-2211.git

# 将当前文件夹初始化为一个本地仓库（.git）
git init

# 添加特定文件到暂存区
git add xxx/xxx

# 添加所有文件到暂存区
git add .

# 查看所有的提交日志
git log

# 将暂存区中的内容提交到本地仓库 并形成一个【快照】 有独立的哈希/签名/指纹 将来可以根据该哈希随意版本前进与后退
git commit -m "提交日志/本次都干了些神马XXOO..."

# 添加远程源
git remote add origin https://gitee.com/steveouyang/test-repo-2211.git

# 查看远程源
git remote -v

# 将本地仓库中的master分支推送到远程仓库的同名分支
git push -u origin master

# 将所有未提交的修改【抽离】并丢入缓存
git stash

# 将缓存中暂存的代码弹出并重新合并到工作区
git stash pop

# 拉取远程仓库的最新代码（所有分支）并将指定分支master的最新内容【合并】到【工作区的当前分支】
git pull origin master
git pull = git pull origin 当前工作区的同名分支

# 获取远程仓库的所有分支及其快照/历史记录到本地仓库（工作区没有任何变化）
git fetch

# 【当前分支】(主动吃入/合并)目标分支
git merge origin/master

# git pull的分解动作
git pull = git fetch + git merge 远程的同名分支

# 查看本地仓库的所有分支
git branch

# 查看所有远程分支
git branch -r 

# 查看所有本地分支+远程分支
git branch -a 

# 基于当前分支的内容创建副本分支名曰dev 并直接将工作区切换/检出（checkout）到dev
git checkout -b dev

# 硬回滚到指定快照（该快照之后的历史记录会在本地消失）
git reset --hard 快照哈希